If an error condition occurs, this routine returns an integer
value indicating the type of error. Possible return values are as
follows:
Return Description
0 Successful completion; the read-write lock object was
acquired for read access.
[EAGAIN] The lock for read access could not be acquired
because the maximum number of read lock acquisitions
for rwlock has been exceeded.
[EBUSY] The read-write lock could not be acquired for read
access because another thread already acquired it
for write access or is blocked and waiting for it for
write access.
[EDEADLCK] The current thread already owns the read-write lock
for writing.
[EINVAL] The value specified by rwlock does not refer to an
initialized read-write lock object.